package com.ph.shopping.facade.supplier.service;


import java.util.List;

import com.ph.shopping.common.core.exception.BizException;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.supplier.entity.Supplier;
import com.ph.shopping.facade.supplier.entity.SupplierChargeRecord;
import com.ph.shopping.facade.supplier.entity.SupplierDrawcashRecord;
import com.ph.shopping.facade.supplier.entity.SupplierImage;
import com.ph.shopping.facade.supplier.vo.SupplierBalanceRecordVo;
import com.ph.shopping.facade.supplier.vo.SupplierVo;

/**
 * @项目：phshopping-facade-Supplier
 *
 * @描述：供应商接口
 *
 * @作者： liuy
 *
 * @创建时间：2017年3月15日
 *
 * @Copyright @2017 by liuy
 */
public interface ISupplierService {

    /**
     * 分页获取供应商列表
     * @param pageIndex 当前页码
     * @param pageSize 每页条数
     * @param supplierVo 查询条件
     * @return List<SupplierVo>
     */
    public Result getSupplierVoPageList(PageBean page,SupplierVo supplierVo) throws BizException;
    
    /**
     * 获取供应商列表
     * @param supplierVo 查询条件
     * @return List<SupplierVo>
     */
    public List<SupplierVo> getSupplierVoList(Supplier supplier) throws BizException;

    /**
     * 新增供应商
     * @param supplier 供应商
     * @param imageList 供应商图片集合
     * @return Result
     */
    public Result addSupplier(Supplier supplier, List<SupplierImage> imageList) throws BizException;

    /**
     * 修改供应商
     * @param supplier 供应商
     * @param imageList 供应商图片集合
     * @return Result
     */
    public Result updateSupplier(Supplier supplier, List<SupplierImage> imageList) throws BizException;

    /**
     * 删除供应商
     * @param supplier 供应商
     * @return Result
     */
    public Result batchDeleteSupplier(List<Long> list) throws BizException;
    
    /**
     * 冻结供应商操作
     * @param supplier 供应商
     * @return Result
     */
    public Result congealSupplier(Supplier supplier) throws BizException;

    /**
     * 审核供应商操作
     * @param supplier 供应商
     * @return Result
     */
    public Result examineSupplier(Supplier supplier) throws BizException;
    
    /**
     * 通过id获取供应商详情
     * @param supplierVo 查询条件
     * @return SupplierVo
     */
    public SupplierVo getSupplierVoDetail(SupplierVo supplierVo) throws BizException;

    /**
     * 分页获取余额记录
     * @param supplier 供应商
     * @return Result
     */
	public Result getBalanceSupplierVoPageList(PageBean page,SupplierBalanceRecordVo supplierBalanceR) throws BizException;

    /**
     * 根据Id查询供应商
     * @param supplier 供应商
     * @return Supplier
     */
	public Supplier getSupplierById(Supplier supplier);
    
    /**
     * 新增供应商充值记录
     * @param supplierChargeRecord 供应商充值记录
     * @return Result
     */
    public Result addSupplierChargeRecord(SupplierChargeRecord supplierChargeRecord) throws Exception;
    
    /**
     * 新增供应商提现记录
     * @param memberDrawcashRecord 商户充值记录
     * @return Result
     */
    public Result addSupplierDrawcashRecord(SupplierDrawcashRecord supplierDrawcashRecord) throws Exception;
}
